package com.atguigu.lease.common.advice;

import com.atguigu.lease.common.result.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@RestControllerAdvice
public class GlobalExceptionHandlers {

    /**
     * 异常处理器方法
     * 该方法用于捕获异常并打印异常堆栈跟踪信息，然后将异常信息封装到Result对象中返回
     *
     * @param e 异常对象，表示捕获到的异常
     * @return 返回一个Result对象，其中包含异常信息
     */
    @ExceptionHandler(Exception.class)
    public Result<String> exceptionHandler(Exception e) {
        // 打印异常的堆栈跟踪信息，用于调试和排查问题
        e.printStackTrace();
        // 将异常信息封装到Result对象中并返回，以便上层调用者可以处理异常信息
        return Result.fail(e.getMessage());
    }
    @ExceptionHandler(LeaseException.class)
    public Result<String> leaseExceptionHandler(LeaseException e) {
        e.printStackTrace();
        return Result.fail(e.getCode(),e.getMessage());
    }

}
